home *** CD-ROM | disk | FTP | other *** search
-
- This directory contains the most up-to-date source to all of the Graphics
- Gems. All known bugs fixes have been applied, and a number of formatting
- problems have be fixed.
-
- Many of the files have been renamed to accomodate those of you who work
- on systems that require file names less than 15 characters in length.
- In addition, those gems that consist of more than one source file have
- been split off into their own subdirectories.
-
- Makefiles are provided that create stand-alone programs, many object
- files, and "gemlib.a". This Graphics Gem Library is created for
- compilation-testing only, and is not intended to be a usable library
- (although it may become so in the future). Indeed, many of the Gems
- will not compile or run properly without additional source code.
- See the Makefile for more details.
-
- Craig Kolb
- 16 Aug 1990
- ----
- Each Gem is made available on an as-is basis; although considerable effort
- has been expended to check the programs as originally designed and their
- release in electronic form, neither the authors nor the publisher make any
- guarantee or warrantee as to the correctness of any of these programs or
- algorithms.
-
- The authors and the publisher hold no copyright on any of these files; this
- source code is public domain, and is freely available to the entire
- computer graphics community for study, use, and modification. We do
- request that the comment at the top of each file, identifying the
- original author and its original publication in the book Graphics
- Gems, be retained in all programs that use these files.
-
- Additional submissions (bug fixes, skeleton programs, auxiliary routines,
- etc.) may be directed to the site administrator, Craig Kolb (kolb@yale.edu).
- He will determine on a case-by-case basis if a particular submission should
- be included in this archive. If accepted, these routines will be made
- available in a companion directory.
-
- The table below gives the correspondence between each source
- file in this directory and the name of the Gem it implements.
- Each implementation illustrates one way to realize the
- techniques described by the accompanying Gem in the book.
- The files here contain only the source code for that
- realization. For a more complete description of the
- algorithms and their applications see the Gems of the same
- name in the first 11 Chapters of the book.
-
- ---------- header files ----------
- GraphicsGems.h / Graphics Gems C Header File
-
- ---------- C code ----------
- 2DClip.dir / Two-Dimensional Clipping:
- A Vector-Based Approach
- AALines.c / Rendering Anti-Aliased Lines
- AAPolyScan.c / Fast Anti-Aliasing Polygon
- Scan Conversion
- Albers.c / Albers Equal-Area Conic Map
- Projection
- BinRec.c / Recording Animation in Binary Order
- For Progressive Temporal Refinement
- BoundSphere.c / An Efficient Bounding Sphere
- BoxSphere.c / A Simple Method for Box-Sphere
- Intersection Checking
- CircleRect.c / Fast Circle-Rectangle Intersection
- Checking
- ConcaveScan.c / Concave Polygon Scan Conversion
- DigitalLine.c / Digital Line Drawing
- Dissolve.c / A Digital "Dissolve" Effect
- DoubleLine.c / Symmetric Double Step Line Algorithm
- FastJitter.c / Efficient Generation of Sampling
- Jitter Using Look-up Tables
- FitCurves.c / An Algorithm for Automatically
- Fitting Digitized Curves
- FixedTrig.c / Fixed-Point Trigonometry with
- CORDIC Iterations
- Forms.c / Forms, Vectors, and Transforms
- GGVecLib.c / 2D And 3D Vector C Library
- HSLtoRGB.c / A Fast HSL-to-RGB Transform
- Hash3D.c / 3D Grid Hashing Function
- HypotApprox.c / A Fast Approximation to
- the Hypotenuse
- Interleave.c / Bit Interleaving for Quad-
- or Octrees
- Label.c / Nice Numbers for Graph Labels
- LineEdge.c / Fast Line-Edge Intersections On
- A Uniform Grid
- MatrixInvert.c / Matrix Inversion
- MatrixOrtho.c / Matrix Orthogonalization
- MatrixPost.c / Efficient Post-Concatenation of
- Transformation Matrices
- Median.c / Median Finding on a 3x3 Grid
- NearestPoint.c / Solving the
- Nearest-Point-On-Curve Problem
- and
- A Bezier Curve-Based Root-Finder
- OrderDither.c / Ordered Dithering
- PixelInteger.c / Proper Treatment of Pixels
- As Integers
- PntOnLine.c / A Fast 2D Point-On-Line Test
- PolyScan.dir / Generic Convex Polygon
- Scan Conversion and Clipping
- Quaternions.c / Using Quaternions for Coding
- 3D Transformations
- RGBTo4Bits.c / Mapping RGB Triples Onto Four Bits
- RayBox.c / Fast Ray-Box Intersection
- RayPolygon.c / An Efficient Ray-Polygon
- Intersection
- Roots3And4.c / Cubic and Quartic Roots
- SeedFill.c / A Seed Fill Algorithm
- SquareRoot.c / A High-Speed, Low-Precision
- Square Root
- Sturm.dir / Using Sturm Sequences to Bracket
- Real Roots of Polynomial Equations
- TransBox.c / Transforming Axis-Aligned
- Bounding Boxes
- TriPoints.c / Generating Random Points
- In Triangles
- ViewTrans.c / 3D Viewing and Rotation Using
- Orthonormal Bases
-